import Vue from 'vue'
import App from './App.vue'
import router from './router'
import './plugins/element.js'
import axios from 'axios';
Vue.prototype.$axios = axios;

Vue.config.productionTip = false
axios.defaults.withCredentials=true;

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

static void TB6612_ADVANCE_TIM1_Mode_Config(TIM_TypeDef* TIMx,uint16_t arr,uint16_t psc,uint16_t duty)
{
    //-----------------时基结构体初始化-------------------------/
    TIM_TimeBaseInitTypeDef TIM_TimeStructure;
    /*开启定时器1时钟，即内部时钟CK_INT=72M*/
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);
    TIM_DeInit(TIMx);
    /*内部时钟作为计数器时钟，72MHZ*/
    TIM_InternalClockConfig(TIMx);
    /*自动重装载寄存器的值，累计TIM_Period+1个频率后产生一个更新或者中断*/
    TIM_TimeStructure.TIM_Period=arr;
    /*时钟预分频系数为71，则驱动计数器的时钟CK_CNT=CK_INT/(71+1)=1MHZ*/
    TIM_TimeStructure.TIM_Prescaler=psc-1;
    /*设置时钟分割，TIM_CKD_DIV1=0，PWM波不延时*/
    TIM_TimeStructure.TIM_ClockDivision=TIM_CKD_DIV1;
    /*向上计数模式*/
    TIM_TimeStructure.TIM_CounterMode=TIM_CounterMode_Up;
    /*重复计数器*/
    TIM_TimeStructure.TIM_RepetitionCounter=0;
    /*初始化定时器*/
    TIM_TimeBaseInit(TIMx,&TIM_TimeStructure);
    /*使能ARR预装载寄存器(影子寄存器)*/
    TIM_ARRPreloadConfig(TIMx,ENABLE);
    //-----------------输出比较结构体初始化-----------------------/
    TIM_OCInitTypeDef   TIM_OCInitStructure;
    /*PWM模式设置，设置为PWM模式1*/
    TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
    /*PWM输出使能相应的IO口输出信号*/
    TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
    /*设置占空比大小,CCR1[15:0]: 捕获/比较通道1的值,若CC1通道配置为输出：CCR1包含了装入当前捕获/比较1寄存器的值(预装载值)。*/
    TIM_OCInitStructure.TIM_Pulse=duty;
    /*输出通道电平极性设置*/
    TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
    /*初始化输出比较参数*/
    TIM_OC1Init(TIMx,&TIM_OCInitStructure);//初始化TIM1 通道1
    TIM_OC2Init(TIMx,&TIM_OCInitStructure);//初始化TIM1 通道2
    TIM_OC3Init(TIMx,&TIM_OCInitStructure);//初始化TIM1 通道3
    TIM_OC4Init(TIMx,&TIM_OCInitStructure);//初始化TIM1 通道4
    /*自动重装载*/
    TIM_OC1PreloadConfig(TIMx,TIM_OCPreload_Enable);
    TIM_OC2PreloadConfig(TIMx,TIM_OCPreload_Enable);
    TIM_OC3PreloadConfig(TIMx,TIM_OCPreload_Enable);
    TIM_OC4PreloadConfig(TIMx,TIM_OCPreload_Enable);
    /*使能计数器*/
    TIM_Cmd(TIMx,ENABLE);
    /*主输出使能,如果设置了相应的使能位(TIMx_CCER寄存器的CCxE、CCxNE位)，则开启OC和OCN输出。*/
    TIM_CtrlPWMOutputs(TIMx,ENABLE);    
}
//高级定时器输出通道初始化函数
static void TB6612_ADVANCE_TIM_Gpio_Config()
{
    GPIO_InitTypeDef  GPIO_InitStruct;
    /*----------通道1配置--------------*/
    /*定时器1输出比较通道*/
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
    /*配置为复用推挽输出*/
    GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
    GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8;
    GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOA,&GPIO_InitStruct);
    /*-----------通道二配置-------------*/
    /*定时器1输出比较通道*/
    /*配置为复用推挽输出*/
    GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
    GPIO_InitStruct.GPIO_Pin=GPIO_Pin_11;
    GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOA,&GPIO_InitStruct);
     /*-----------通道三配置-------------*/
    /*定时器1输出比较通道*/
    /*配置为复用推挽输出*/
    GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
    GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9;
    GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOA,&GPIO_InitStruct);
     /*-----------通道四配置-------------*/
    /*定时器1输出比较通道*/
    /*配置为复用推挽输出*/
    GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
    GPIO_InitStruct.GPIO_Pin=GPIO_Pin_10;
    GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOA,&GPIO_InitStruct);
}
